package com.cskaoyan.javase.exception.getmessage3;

/**
 * @description: 获取异常对象中的信息
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 *
 * //获取异常信息，返回字符串。打印的实际上是异常产生的原因
 * （不使用）String getMessage()
 * //获取异常类名和异常信息，返回字符串。 打印的是异常产生的原因和所在类
 * （不使用）String toString()
 * //获取异常类名和异常信息，以及异常出现在程序中的位置
 * （推荐使用）void printStackTrace()
 * //使用IO流，将异常内容保存在日志文件中，以便查阅，早已过时，了解即可
 * （过时的日志处理方式）printStackTrace(PrintStream s)
 *
 * 开发中有具体的框架去做日志,上面这种方式已经过时了,不会有人用了
 * 本地调试的时候 用printStackTrace()这个方法足够了
 * 等到线上环境上线  用日志框架去做
 *
 */
public class Demo {
    public static void main(String[] args) {
        try {
            System.out.println(10 / 0);
        } catch (ArithmeticException ae) {
            //使用异常对象调用以上方法
            //String getMessage()
            System.out.println(ae.getMessage());  //这个方法 打印是异常产生的原因
            //String toString()
            System.out.println(ae.toString());  //这个方法 打印的是异常的全限定类名+原因
            //void printStackTrace()
            ae.printStackTrace();  //这个方法没有返回值 会直接打印到控制台 异常信息当中最重要的肯定是异常发生的位置
            //这个方法是开发中 常用的
        }
    }
}
